<?php
if ( count( get_included_files() ) == 1 ) die( '---' );

class Grille
{
	var $grille_id;
	
	var $fiche_id;	
	
	var $titre;
	
	var $description;
	
	var $ressource;
	
	var $ressource_url;
	
	var $ordre;
	
	var $apparence;

	var $table;

	var $tbleGrilleClasse;
	
	// Constructeur
	function Grille() 
    {
    	$this->grille_id = -1;
    	$this->fiche_id = $fiche_id;
    	$this->titre = $titre;
    	$this->description = $description;
	$this->ressource = $ressource;
	$this->ressource_url = $ressource_url;
	$this->ordre = $ordre;
	$this->apparence = $apparence;
	
	global $tables;    	
	$this->table = $tables['PFLgrille'];
	$this->tbleGrilleClasse = $tables['PFLgrilleClasse'];
    }
    
    // Load 
    function load($grille_id)
    {
 
    	$sql = "SELECT grille_id, fiche_id,titre, description, ressource, ressource_url, ordre, apparence
		FROM `".$this->table."`
		WHERE grille_id = '".$grille_id."'";
		$data = claro_sql_query_get_single_row($sql);

	   if( !empty($data) )
	   {
	   	$this->grille_id     = $data['grille_id'];
	   	$this->fiche_id      = $data['fiche_id'];
	   	$this->titre      	= $data['titre'];
	   	$this->description 	= $data['description'];
	   	$this->ressource	   = $data['ressource'];
	   	$this->ressource_url	= $data['ressource_url'];
	   	$this->ordre      	= $data['ordre'];
	   	$this->apparence     = $data['apparence'];
	   	
	   	return true;
	   }
	   else
	   return false;
    }
    
    
    // Save 
    function save()  
    {
    	if( $this->grille_id == -1 )
    	{
    		$sql = "INSERT INTO `".$this->table."` 
					  SET fiche_id = ".$this->fiche_id.",
							titre = '".$this->titre."',
							description = '".addslashes($this->description)."',
							ressource = '".addslashes($this->ressource)."',
							ressource_url = '".$this->ressource_url."',
							ordre = '".$this->ordre."',
							apparence = '".$this->apparence."'
							";
			// execute the creation query and get id of inserted assignment
		    $insertedId = claro_sql_query_insert_id($sql);

		    if( $insertedId )
		    {
		    	$this->grille_id = (int) $insertedId;

		      return $this->grille_id;
		    }
		    else
		    {
		        return false;
		    }
    	}
    	else
    	{
    		$sql = "UPDATE `".$this->table."` 
					   SET fiche_id = ".$this->fiche_id.",
							titre = '".addslashes($this->titre)."',
							description = '".addslashes($this->description)."',
							ressource = '".addslashes($this->ressource)."',
							ressource_url = '".$this->ressource_url."',
							ordre = '".$this->ordre."',
							apparence = '".$this->apparence."'
					  WHERE grille_id = ".$this->grille_id;
			// execute and return main query
		    if( claro_sql_query($sql) )
		    {
		    	return $this->grille_id;
		    }
		    else
		    {
		    	return false;
		    }
    	}
    }
    
    function delete()
	 {
	 	$sql = "DELETE FROM `".$this->table."` WHERE grille_id = ".$this->grille_id;
	 	if( claro_sql_query($sql) == false ) return false;
			
		$this->grille_id = -1;
		return true;
	 }
	 
	function chercherListeGrilles ()
	{
		$sql_search = "SELECT grille_id
							FROM `".$this->table."`
							WHERE fiche_id = '".$this->fiche_id."'
							ORDER BY ordre";

		return claro_sql_query_fetch_all_rows($sql_search);
	}
	
	// Recherche de l'ordre d'une nouvelle grille
	function chercheNouvelOrdre()
	{
		$sql = "SELECT ordre
				  FROM `".$this->table."`
				  WHERE fiche_id = '".$this->fiche_id."'
				  ORDER BY ordre DESC
				  LIMIT 0,1";
		$max_ordre = claro_sql_query_get_single_row($sql);
		return $max_ordre['ordre']+1;
	}
	
	// Cherche l'id d'une grille par son ordre
	function chercherGrilleParOrdre($ordre)
	{
		$sql = "SELECT grille_id
				 	FROM `".$this->table."`
				  	WHERE fiche_id = '".$this->fiche_id."'
					AND ordre = ".$ordre;

		$grille_id = claro_sql_query_get_single_row($sql);
		return $grille_id['grille_id'];	
	}
	
	// Met à jour l'ordre des grilles en cas de suppression
	function majOrdre()
	{
		$sql = "UPDATE `".$this->table."` 
					SET ordre = ordre-1
					WHERE ordre > ".$this->ordre;
		return claro_sql_query($sql);
	}

	// Recherche les classes pouvant éditer cette grille
	function chercherGrilleClasses()
	{
		$sql = "SELECT classe_id FROM `".$this->tbleGrilleClasse."` WHERE grille_id = ".$this->grille_id;
		return claro_sql_query_fetch_all_rows($sql);
	}

	function enregistrerGrilleClasses($classeId)
	{
		$sql = "INSERT INTO `".$this->tbleGrilleClasse."` SET grille_id = '".$this->grille_id."', classe_id = ".$classeId;
		return claro_sql_query($sql);
	}

	function supprimerGrilleClasses()
	{
		$sql = "DELETE FROM `".$this->tbleGrilleClasse."` WHERE grille_id = '".$this->grille_id."'";
		if( claro_sql_query($sql) == false ) return false;
	}
	
	/**
     * get id
     *
     * @author Pierre Raynaud
     * @return int
     */
	function getGrilleId()
	{
		return (int) $this->grille_id;
	}
	
	/**
     * get fiche_id
     *
     * @author Pierre Raynaud
     * @return int
     */
	function getFicheId()
	{
		return (int) $this->fiche_id;
	}
	
	/**
     * set fiche_id
     *
     * @author Pierre Raynaud
     * @param int $value
     */
	function setFicheId($value)
	{
		$this->fiche_id = $value;
	}
	
	/**
     * get titre
     *
     * @author Pierre Raynaud
     * @return string
     */
	function getTitre()
	{
		return $this->titre;
	}
	
	/**
     * set titre
     *
     * @author Pierre Raynaud
     * @param string $value
     */
	function setTitre($value)
	{
		$this->titre = trim($value);
	}
	
	/**
     * get description
     *
     * @author Pierre Raynaud
     * @return string
     */
	function getDescription()
	{
		return $this->description;
	}
	
	/**
     * set description
     *
     * @author Pierre Raynaud
     * @param string $value
     */
	function setDescription($value)
	{
		$this->description = trim($value);
		return $this->save();
	}
	
	/**
     * get ressource
     *
     * @author Pierre Raynaud
     * @return string
     */
	function getRessource()
	{
		return $this->ressource;
	}
	
	/**
     * set ressource
     *
     * @author Pierre Raynaud
     * @param string $value
     */
	function setRessource($value)
	{
		$this->ressource = trim($value);
	}
	
	/**
     * get ressource_url
     *
     * @author Pierre Raynaud
     * @return string
     */
	function getRessourceUrl()
	{
		return $this->ressource_url;
	}
	
	/**
     * set ressource_url
     *
     * @author Pierre Raynaud
     * @param string $value
     */
	function setRessourceUrl($value)
	{
		$this->ressource_url = trim($value);
	}
	
	/**
     * get ordre
     *
     * @author Pierre Raynaud
     * @return int
     */
	function getOrdre()
	{
		return $this->ordre;
	}
	
	/**
     * set ordre
     *
     * @author Pierre Raynaud
     * @param int $value
     */
	function setOrdre($value)
	{
		$this->ordre = $value;
	}
	
	/**
     * get apparence
     *
     * @author Pierre Raynaud
     * @return string
     */
	function getApparence()
	{
		return $this->apparence;
	}
	
	/**
     * set apparence
     *
     * @author Pierre Raynaud
     * @param string $value
     */
	function setApparence($value)
	{
		$this->apparence = trim($value);
	}
}
?>
